package com.tarena.lbs.coupon.dao.repository;

import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.coupon.pojo.po.UserCouponsPO;
import com.tarena.lbs.coupon.pojo.query.UserCouponQuery;

import java.util.List;

public interface UserCouponsRepository {
    int insert(UserCouponsPO record);


    /**
     * 根据优惠券id查询用户优惠券
     *
     * @param poId 优惠券id
     * @return 用户优惠券
     */
    List<UserCouponsPO> findByCouponId(Integer poId);

    /**
     * 根据优惠券ID列表查询用户领取记录
     *
     * @param couponQuery 查询参数
     * @param couponIds   优惠券ID列表
     * @return 用户领取记录
     */
    PageResult<UserCouponsPO> listUserReceivedCouponsByCouponIds(UserCouponQuery couponQuery, List<Integer> couponIds);

//    用户查询优惠券，返回我的优惠券

    /**
     * 查询用户领取的优惠券
     * @param couponQuery 查询参数
     * @return 用户领取的优惠券
     */
    PageResult<UserCouponsPO> listUserReceivedCoupons(UserCouponQuery couponQuery);
}
